#include "Socket.h"


int main(){


	Socket sTest("localhost", 1234);

	if(!sTest.conectar()){
		std::cout << "No me pude conectar\n";
		int pid = fork();
		if(pid == 0){

			std::cout << "Levanto el server\n";
			char bufferServ[256];

			Socket serv("localhost", 1234);
			serv.enlazar();
			serv.escuchar();


			Socket *s2 = serv.aceptar();

			std::cout << "Acepto conexion\n";
	
			if(s2){
				do{
					std::cout << "Espero recepcion\n";
					int recibido = s2->recibir(&bufferServ, 256-1);
					bufferServ[recibido]= 0;
					std::cout << "Recibido: " << bufferServ << std::endl;
				}while(strcmp(bufferServ, "s") && s2->esValido());
				s2->cerrar();
			}
			serv.cerrar();			
			std::cout << "Sale el servidor\n";
			exit(0);

		}
		sleep(5);
	}
	else{
		sTest.cerrar();
	}

	std::cout << "Vuelvo a intentar conectarme\n";
	Socket s("localhost", 1234);

	if(s.conectar()){
		char buffer[256];

		std::cout << "OK. Conectado. Empiezo a enviar\n";

		while(s.esValido()){
			std::cout << "Ingrese texto a mandar\n";
			std::cin.getline(buffer, 256);
			s.enviar(&buffer, strlen(buffer));
		}
	}

	std::cout << "Sale el cliente\n";
		
	s.cerrar();
	return 0;
}


